#ifndef SIMPLEDRIVECONTROLLER_H
#define SIMPLEDRIVECONTROLLER_H

/********** Library Includes **************************************************/

#include <opencv/cv.h>

/********** Local Includes ****************************************************/

#include "drivecontroller.h"
#include "robot_structures.h"

/**
 * A drive controller that simply turns and drives directly toward the goal.
 */
class SimpleDriveController : public DriveController {
public:
	SimpleDriveController();
	explicit SimpleDriveController(int speed);
	
	Command next(RobotOrientation, cv::Point goal);
	
	void setSpeed(int);
	int speed() const;

private:
	/**
	 * The Euclidean distance between one and two.
	 */
	double euclidean(cv::Point one, cv::Point two) const;
	
	int m_speed;
};

#endif